package com.ruoyi.hcrf.domain.service.agv;


import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.hcrf.bo.agv.TaskAgvBo;
import com.ruoyi.hcrf.bo.agv.TaskAgvInsert;
import com.ruoyi.hcrf.domain.StockFlow;
import com.ruoyi.hcrf.domain.StockMaster;
import com.ruoyi.hcrf.domain.entity.task.AgvMonious;
import com.ruoyi.hcrf.domain.entity.task.InOut;
import com.ruoyi.hcrf.domain.entity.task.TaskAgv;

public interface TaskAgvService  extends IService<TaskAgv> {

    //查询在库表数据
    StockFlow selectFlow();

    //查询库位信息-fromSite
    StockMaster select(String stockMasterId);

    //toSite
    StockMaster selectTo();

    boolean insert(TaskAgvInsert taskAgvInsert);


    //查询在库表数据-根据开捆箱id
    AgvMonious selectFlowById(String boxId);

    //生药库位
    StockFlow selectFlowTwo();

    //生药库位toSite
    StockMaster selectToTwo();

    //根据taskId修改Agv任务
    Boolean findById(String taskId);

    //根据taskId修改Agv任务完成状态
    Boolean findByIdOk(String taskId);

    //根据taskId修改Agv任务完成状态-生药库位
    Boolean findByIdOkTwo(String taskId);

    //根据taskId修改Agv任务完成状态-裁切室
    Boolean findByIdOkThree(TaskAgvBo taskAgvBo);


    //根据taskId修改Agv任务完成状态-卸货到临时
    Boolean findByIdOkFour(String taskId);

    //库位+在库修改
    boolean updateLocation(TaskAgvBo taskAgvBo);

    //根据开捆箱id获取ToSite
    InOut selectBoxId(String boxId);


    //调和容器AGV计算库位
    StockMaster selectAgv();


    //查询在库数据空桶
    AgvMonious selectAgvNull();

    //调和容器AGV生成在库数据-空桶
    Boolean findAgv(TaskAgvBo taskAgvBo);


    //调和容器agv空桶任务处理
    Boolean findByIdAGv(String taskId);

    StockFlow selectById(String boxId);
}
